#include <iostream>
#include <unistd.h>
#include <signal.h>
#include <unistd.h>
int n1=0;
int n2=0;
using namespace std;
void hander(int aa)
{
    cout<<"调到2号了"<<"pid="<<getpid()<<endl;
}
void handleel(int aa)
{
    cout<<"调到40号了"<<"pid="<<getpid()<<endl;
}
using namespace std;
int main()
{
sigset_t set ,objc;
sigemptyset(&set);
sigaddset(&set,2);
sigaddset(&set,40);
sigprocmask(SIG_BLOCK,&set,nullptr);
signal(2,hander);
signal(40,handleel);
cout<<"5秒后解除2的屏蔽,10秒后解除对40的屏蔽"<<endl;
for(int i=1;i<=15;i++)
{
    if(i==5)
    {
        sigprocmask(SIG_UNBLOCK,&set,nullptr);
        cout<<"慢慢解除对你们的封锁"<<endl;
    }
    if(i>=5)
    {
    n1=1;
    raise(2);
    }
    if(i>=10)
    {
        raise(40);
    n2=1;
    }
    if(n1==0)
        cout<<"调不到2号咯咯咯"<<"pid="<<getpid()<<endl;
    if(n2==0)
        cout<<"调不到40号咯咯咯"<<"pid="<<getpid()<<endl;
         sleep(1);
}
raise(9);
    return 0;
}